tugHall v 2.1: USER-GUIDE-TESTS

Requirements

R version 3.6

Libraries: stringr, actuar, MASS, RColorBrewer, ape, ggplot2, ggtree

Operation systems: Window, Mac. The code for analysis is not tested under Linux based systems.

To perform the simulation, kindly see the User-Guide-tugHall_v_2.1 file. After the simulation the file tugHall_2.1/Output/cloneout.txt is generated, which is used to analyze the evolution of cells.

Table of Contents

  1. Environmental death
  2. Apoptosis death
  3. Invasion/metastasis transformation
  4. Heyflick limit
  5. Hallmarks tests
  6. Tests for mutations

1. Environmental death

For tests we use directory Enveronmental_death:

Using these parameters, we should get constant number of cells in average. To check it, please, run the code and see results using /Code/Average_tests.R after finish of 100 trials for primary cells (Fig.1) and for metastasis cells (Fig.2).


Fig.1. Evolution of number of primary cells for 100 trials: left - plot with dots, right - plot with distribution for each time step.


Fig.2. Evolution of number of metastasis cells for 100 trials: left - plot with dots, right - plot with distribution for each time step.


2. Apoptosis death

For evolution tests we use directory Apoptosis_death:

Using these parameters, we should get constant number of cells in average. To check it, please, run the code and see results using /Code/Average_tests.R after finish of 100 trials for primary cells (Fig.3) and for metastasis cells (Fig.4).


Fig.3. Evolution of number of primary cells for 100 trials: left - plot with dots, right - plot with distribution for each time step.


Fig.4. Evolution of number of metastasis cells for 100 trials: left - plot with dots, right - plot with distribution for each time step.


The test for correct calculation of apoptosis probability is in the folder Apoptosis_function. There is cloninit.txt file in the /Input folder, which has initial clones with a different combination of mutated genes. Apoptosis probability defines by not negative function:

\(a = \frac{1}{1+e^{- s \cdot (x - 0.5)}} - H_a\),

\(a=0, ~~if~~a<0\)

where \(x\) is mutation density, \(s\) is parameter.

The file /Output/clonout.txt contents output data. There is no evolution, because in the model function we deleted this possibility. In the table below we can recalculate the mutation density and probability of apoptosis by hands (only data for first timestep are presented here):


Table 1. Subset of output data. The output data for all clones. The names of columns are related to the description in the USER-GUIDE-tugHall_v_2.1.
Time Index or Average \(a\) Apoptosis, \(H_a\) mutation density, \(x\)
0 avg 0.2844715 0.15 0.3785714
0 1 0.0000000 1.00 0.1428571
0 2 0.0273468 0.00 0.1428571
0 3 0.0273468 0.00 0.1428571
0 4 0.0273468 0.00 0.1428571
0 5 0.0273468 0.00 0.1428571
0 6 0.0273468 0.00 0.1428571
0 7 0.0273468 0.00 0.1428571
0 8 0.0000000 1.00 0.2857143
0 9 0.1050006 0.00 0.2857143
0 10 0.1050006 0.00 0.2857143
0 11 0.0000000 1.00 0.7142857
0 12 0.6713475 0.00 0.5714286
0 13 0.1050006 0.00 0.2857143
0 14 0.9726532 0.00 0.8571429
0 15 0.6713475 0.00 0.5714286
0 16 0.8949994 0.00 0.7142857
0 17 0.3286525 0.00 0.4285714
0 18 0.6713475 0.00 0.5714286
0 19 0.6713475 0.00 0.5714286
0 20 0.3286525 0.00 0.4285714

To check calculation it is needed to pay attantion only on the \(a\), \(H_a\) and mutation density, \(x\) columns.
Also to check the calculation of the mutation density, \(x\) value, it is neccessary to see on the columns with driver genes in original file Apoptosis_function/Output/cloneout.txt. To see test “How hallmark apoptosis affects on \(a\) - apoptosis probability”, kindly see Apoptosis subsection in section Hallmarks tests.

3. Invasion/metastasis transformation

For evolution tests we use directory Metastasis_transformation:

Using these parameters, we should get constant number of cells in average. To check it, please, run the code and see results using /Code/Average_tests.R after finish of 100 trials for primary cells (Fig.5). For metastasis cells we have got transformation if \(im'=1\) that is easy to check by definition of all genes with mutations.


Fig.5. Evolution of number of primary cells for 100 trials: left - plot with dots, right - plot with distribution for each time step.


4. Heyflick limit

Figures 1,3 and 5 show time evolution of number of primary cells. For primary cells, Heyflick limitations appears at 50 divisions. Because of division occurs at each time step, we can see sharp decrease of number of cell after Heyflick limitation (50 steps). For metastasis cells, Figs.2 and 4 show there is no Heyflick limitation, because of hallmark affect.


5. Hallmarks tests

The hallmarks tests based on idea: we have to check the influence only of hallmarks variables on probabilities. In this way it does not matter that happens with the clones and how the clones depend on probabilities. ONLY one process we want to check - how the probabilities depend on Hallmarks variables. What is why we changed the code TO STOP processes of division and death of cells/clones (Please, kindly see trial function in the Code/tugHall_2.1_functions.R file). Please, check the FIRST and SECOND time steps, because the invasion/metastasis transformation occurs only after trial!

To check the results of tests, we need just to open Output/cloneout.txt file and check values of hallmarks and related probabilities for each clone. Here we can see the results of simlation for each hallmark variable separetly.

5.1. Apoptosis \(H_a\)

There are only genes GA1, GA2, GA3 and GA4 related to the apoptosis hallmark (Table 2). Table 3 shows subset of outdata after simulation. The apoptosis probability depends on apoptosis hallmark as a nonnegative linear function: \(a = \frac{1}{1+e^{- s \cdot (x - 0.5)}} - H_a\). To check this dependence we applied high mutation density to all clones, so \(a = 0.7310586\) for primary tumor clones and \(a = 0.6224593\) for metastasis clones. Table 3 allows to check dependences of apoptosis hallmark \(H_a\) on mutated genes \(GA1, GA2, GA3, GA4\) as well as dependences of \(a\) on \(H_a\). Empty cell in Table 3 means 0, full cell means 1 in the dependence of hallmark: \(H_a = \sum{w_i \cdot GA_i}\), full cell has information about the mutated site and toime step when mutation happend, but it does not matter for calculation of \(a\) and \(H_a\).


Table 2. Subset of gene’s weights in definition of hallmarks ‘Apoptosis’. The names of columns are related to the description in the USER-GUIDE-tugHall_v_2.1.
Genes Apoptosis, \(H_a\)
GA1 0.1
GA2 0.2
GA3 0.3
GA4 0.4

Table 3. Subset of output data. The output data for hallmark Apoptosis. The names of columns are related to the description in the USER-GUIDE-tugHall_v_2.1.

Time AvgOrIndx a. Ha type mut_den PosDriver.GA1 PosDriver.GA2 PosDriver.GA3 PosDriver.GA4
1 0 avg 0.1741084 0.0952381 0.0000000 0.302381
2 0 1 0.7310586 0.0000000 0.0000000 0.600000
3 0 2 0.6310586 0.1000000 0.0000000 0.600000 1:0
4 0 3 0.4310586 0.3000000 0.0000000 0.600000 1:0 1:0
5 0 4 0.1310586 0.6000000 0.0000000 0.600000 1:0 1:0 1:0
6 0 5 0.0000000 1.0000000 0.0000000 0.600000 1:0 1:0 1:0 1:0
7 0 6 0.5224593 0.1000000 0.0000000 0.550000 1:0
8 0 7 0.3224593 0.3000000 0.0000000 0.550000 1:0 1:0
9 0 8 0.0224593 0.6000000 0.0000000 0.550000 1:0 1:0 1:0
10 0 9 0.0000000 1.0000000 0.0000000 0.550000 1:0 1:0 1:0 1:0
44 1 avg 0.1741084 0.0952381 0.4047619 0.302381
45 1 1 0.7310586 0.0000000 0.0000000 0.600000
46 1 2 0.6310586 0.1000000 0.0000000 0.600000 1:0
47 1 3 0.4310586 0.3000000 0.0000000 0.600000 1:0 1:0
48 1 4 0.1310586 0.6000000 0.0000000 0.600000 1:0 1:0 1:0
49 1 5 0.0000000 1.0000000 0.0000000 0.600000 1:0 1:0 1:0 1:0
50 1 6 0.5224593 0.1000000 1.0000000 0.550000 1:0
51 1 7 0.3224593 0.3000000 1.0000000 0.550000 1:0 1:0
52 1 8 0.0224593 0.6000000 1.0000000 0.550000 1:0 1:0 1:0
53 1 9 0.0000000 1.0000000 1.0000000 0.550000 1:0 1:0 1:0 1:0

5.2. Angiogenesis \(H_b\)

There are only genes GB1, GB2, GB3 and GB4 related to the angiogenesis hallmark (Table 4). Table 5 shows subset of outdata after simulation. The division probability depends on angiogenesis hallmark as the function:

\(d' = d - E' \cdot N\) for primary cells,

\(d' = d\) for metastasis cells,

where \(N\) is a number of cells, \(d = d_0 + H_d\). We define \(H_d=1\) by all mutated genes \(GD_i\) related to growth/antigrowth \(H_d\) hallmark. The \(E'\) is a friction coefficient, which equals:

\(E' = \frac{E_0}{1 + F_0 \cdot H_b}\)

and \(N_{max} = \frac{1}{E'}\) is a maximal number of primary cells, \(F_0\) and \(E_0\) are parameters defined by user, here \(E_0= 10^{-3}, F_0 = 2\). To check these dependences we applied different mutated genes related to angiogenesis hallmark. Table 5 allows to check dependences of angiogenesis hallmark \(H_b\) on mutated genes \(GB1, GB2, GB3, GB4\) as well as dependences of \(N_{max}\) and \(E'\) on \(H_b\). Empty cell with information of genes in Table 5 means 0, full cell means 1 in the dependence of hallmark: \(H_b = \sum{w_i \cdot GB_i}\), full cell has information about the mutated site and time step when mutation happened, but it does not matter for calculation of \(H_b\). Please, pay attantion that only for next time step we can check probabilities, because trial function is needed to change the state of cell to metastasis. That is why step 0 is skipped in the Table 5.


Table 4. Subset of gene’s weights in definition of hallmarks ‘Angiogenesis’. The names of columns are related to the description in the USER-GUIDE-tugHall_v_2.1.
Genes Angiogenesis, \(H_b\)
5 GB1 0.1
6 GB2 0.2
7 GB3 0.3
8 GB4 0.4

Table 5. Subset of output data. The output data for hallmark Angiogenesis. The names of columns are related to the description in the USER-GUIDE-tugHall_v_2.1.

Time AvgOrIndx d. E. N Nmax. M Hd Hb type PosDriver.GB1 PosDriver.GB2 PosDriver.GB3 PosDriver.GB4
55 1 11 0.9791667 0.0008333 25 1200 17 1 0.1 0 1:0
56 1 12 0.9843750 0.0006250 25 1600 17 1 0.3 0 1:0 1:0
57 1 13 0.9886364 0.0004545 25 2200 17 1 0.6 0 1:0 1:0 1:0
58 1 14 0.9916667 0.0003333 25 3000 17 1 1.0 0 1:0 1:0 1:0 1:0
59 1 15 1.0000000 0.0003333 25 3000 17 1 1.0 1 1:0 1:0 1:0 1:0
60 1 16 1.0000000 0.0004545 25 2200 17 1 0.6 1 1:0 1:0 1:0
61 1 17 1.0000000 0.0006250 25 1600 17 1 0.3 1 1:0 1:0
62 1 18 1.0000000 0.0008333 25 1200 17 1 0.1 1 1:0

5.3. Growth/antigrowth \(H_d\)

There are only genes GD1, GD2, GD3 and GD4 related to the Growth/antigrowth hallmark (Table 6). Table 7 shows subset of outdata after simulation. The division probability depends on Growth/antigrowth hallmark as the linear function, restricted by 1:

\(d = d_0 + H_d\),

\(d=1\), if \(d > 1\).

And again the \(d' = d - E' \cdot N\) for primary cells, and \(d' = d\) for metastasis cells, where \(N\) is a number of cells, \(d = d_0 + H_d\). We define \(H_b=0\) and \(E' = \frac{E_0}{1 + F_0 \cdot H_b} = 10^{-3}\) for all cells.

To check these dependences we applied different mutated genes related to Growth/antigrowth hallmark. Table 7 allows to check dependences of Growth/antigrowth hallmark \(H_d\) on mutated genes \(GD1, GBD, GD3, GD4\) as well as dependences of \(d\) on \(H_d\) for primary and metastasis cells. Empty cell with information of genes in Table 7 means 0, full cell means 1 in the dependence of hallmark: \(H_d = \sum{w_i \cdot GD_i}\), full cell has information about the mutated site and time step when mutation happened, but it does not matter for calculation of \(H_d\). Please, pay attantion that only for next time step we can check probabilities, because trial function is needed to change the state of cell to metastasis. That is why step 0 is skipped in the Table 7.


Table 6. Subset of gene’s weights in definition of hallmarks ‘Growth/antigrowth’. The names of columns are related to the description in the USER-GUIDE-tugHall_v_2.1.
Genes Growth/antigrowth, \(H_d\)
17 GD1 0.1
18 GD2 0.2
19 GD3 0.3
20 GD4 0.4

Table 7. Subset of output data. The output data for hallmark Growth/antigrowth. The names of columns are related to the description in the USER-GUIDE-tugHall_v_2.1.

Time AvgOrIndx d. E. N Nmax. M Hd Hb type PosDriver.GD1 PosDriver.GD2 PosDriver.GD3 PosDriver.GD4
77 1 33 0.000 0.001 25 1000 17 0.0 0 0
78 1 34 0.075 0.001 25 1000 17 0.1 0 0 1:0
79 1 35 0.275 0.001 25 1000 17 0.3 0 0 1:0 1:0
80 1 36 0.575 0.001 25 1000 17 0.6 0 0 1:0 1:0 1:0
81 1 37 0.975 0.001 25 1000 17 1.0 0 0 1:0 1:0 1:0 1:0
82 1 38 1.000 0.001 25 1000 17 1.0 0 1 1:0 1:0 1:0 1:0
83 1 39 0.600 0.001 25 1000 17 0.6 0 1 1:0 1:0 1:0
84 1 40 0.300 0.001 25 1000 17 0.3 0 1 1:0 1:0
85 1 41 0.100 0.001 25 1000 17 0.1 0 1 1:0
86 1 42 0.000 0.001 25 1000 17 0.0 0 0

5.4. Immortalization \(H_i\)

There are only genes GI1, GI2, GI3 and GI4 related to the Immortalization hallmark (Table 8). Table 9 shows subset of outdata after simulation. The immortalization probability \(i\) depends on immortalization hallmark \(H_i\) as a nonnegative linear function: \(i' = 1 - H_i\). To check this dependence we applied different mutated rate for genes GI1, GI2, GI3 and GI4.

Table 9 allows to check the dependence for \(H_i\) of immortalization hallmark on mutated genes \(GI1, GI2, GI3, GI4\) as well as dependences of \(i\) on \(H_i\) for primary and metastasis cells. Empty cell in Table 9 means 0, full cell means 1 in the dependence of hallmark: \(H_i = \sum{w_i \cdot GI_i}\), full cell has information about the mutated site and toime step when mutation happend, but it does not matter for calculation of \(i\) and \(H_i\).


Table 8. Subset of gene’s weights in definition of hallmarks ‘Immortalization’. The names of columns are related to the description in the USER-GUIDE-tugHall_v_2.1.
Genes Immortalization, \(H_i\)
13 GI1 0.1
14 GI2 0.2
15 GI3 0.3
16 GI4 0.4

Table 9. Subset of output data. The output data for hallmark Immortalization. The names of columns are related to the description in the USER-GUIDE-tugHall_v_2.1.

Time AvgOrIndx i. Hi type PosDriver.GI1 PosDriver.GI2 PosDriver.GI3 PosDriver.GI4
68 1 24 1.0 0.0 0
69 1 25 0.9 0.1 0 1:0
70 1 26 0.7 0.3 0 1:0 1:0
71 1 27 0.4 0.6 0 1:0 1:0 1:0
72 1 28 0.0 1.0 0 1:0 1:0 1:0 1:0
73 1 29 0.0 1.0 1 1:0 1:0 1:0 1:0
74 1 30 0.4 0.6 1 1:0 1:0 1:0
75 1 31 0.7 0.3 1 1:0 1:0
76 1 32 0.9 0.1 1 1:0
77 1 33 1.0 0.0 0

5.4. Invasion/metastasis \(H_{im}\)

There are only genes GIM1, GIM2, GIM3 and GIM4 related to the Invasion/metastasis hallmark (Table 10). Table 11 shows subset of outdata after simulation. The invasion/metastasis probability \(im'\) depends on invasion/metastasis hallmark \(H_{im}\) as a linear function:

\(im' = H_{im}\).

To check this dependence we applied different mutated rate for genes GIM1, GIM2, GIM3 and GIM4.

Table 11 allows to check the dependence for \(H_{im}\) of Invasion/metastasis hallmark on mutated genes \(GIM1, GIM2, GIM3, GIM4\) as well as dependences of \(im'\) on \(H_{im}\) for primary and metastasis cells. Empty cell in Table 11 means 0, full cell means 1 in the dependence of hallmark: \(H_{im} = \sum{w_i \cdot GIM_i}\), full cell has information about the mutated site and toime step when mutation happend, but it does not matter for calculation of \(im'\) and \(H_{im}\).
Please, pay attantion that only for next time step we can check status of cells, because trial function is needed to change the state of cell to metastasis. The status dependes on \(im'\) probability, if \(im' = 1\) then \(type= 1~~or~~'metastasis'\), for other cases \(type =0~~or~~'primary'\).


Table 10. Subset of gene’s weights in definition of hallmarks ‘Invasion/metastasis’. The names of columns are related to the description in the USER-GUIDE-tugHall_v_2.1.
Genes Invasion / Metastasis, \(H_{im}\)
9 GIM1 0.1
10 GIM2 0.2
11 GIM3 0.3
12 GIM4 0.4

Table 11. Subset of output data. The output data for hallmark Invasion/metastasis. The names of columns are related to the description in the USER-GUIDE-tugHall_v_2.1.

Time AvgOrIndx im. Him type PosDriver.GIM1 PosDriver.GIM2 PosDriver.GIM3 PosDriver.GIM4
20 0 19 0.0 0.0 0
21 0 20 0.1 0.1 0 1:0
22 0 21 0.3 0.3 0 1:0 1:0
23 0 22 0.6 0.6 0 1:0 1:0 1:0
24 0 23 1.0 1.0 0 1:0 1:0 1:0 1:0
63 1 19 0.0 0.0 0
64 1 20 0.1 0.1 0 1:0
65 1 21 0.3 0.3 0 1:0 1:0
66 1 22 0.6 0.6 0 1:0 1:0 1:0
67 1 23 1.0 1.0 1 1:0 1:0 1:0 1:0

6. Tests for mutations

In this tests, we check the only mutation process and how it affects on hallmark variables. So, the normal reaction for test is the random changes in the genes with formula:

\(m'=m_0 \cdot l_{CDS},\)

where \(m_0\) is the initial rate of mutation defined by user, \(l_{CDS}\) is the CDS length of a gene. If a gene is changed then the related hallmark also has to be changed. The mutation process depends on several parameters: \(m_0, u_s, u_o\) and the CDS lengths of the genes. the variables \(m_0, u_s, u_o\) are defined by user, the CDS lengths of the genes are defined in the Gene_cds2 files (Table 12). The parameters \(u_s, u_o\) define the mutatopn processes in the suppressors and oncogenes respectively. Mutation of driver genes depends on probabilities \(u_s\) and \(u_o\). Mutation of passenger genes depends on probabilities \((1- u_s)\) and \((1 - u_o)\) without changes in the hallmarks variables.

Mutation occurs only during division process, so the mutation must occur for parents and daughter cells independently. FOR TEST we changed the code and switch off the death of cell in order to check the mutation process. The cloneinit.txt file is permanent for all tests (Table 13), it has the cells with all combinations of 4 genes + GD. The GD gene is needed, because the mutation occurs ONLY during the division process, that is why we need GD (GD switch on the division process with the probability 1).

In this tests we change only the Gene_cds2 and \(u_s, u_o, m_0\) to check the calculations of hallmarks variables. The results of simulations are in Table 14.


Table 12. Gene_cds_2 files: Different files for test simulations. (The names of columns are related to the description in the USER-GUIDE-tugHall_v_2.1).


Table 12. A) Files for oncogenes (gene_cds2_o.txt - left) and supressors (gene_cds2_s.txt - right).
Gene Length of CDS Hallmark o/s Weight
GA 1 apoptosis o 1
GB 1 angiogenesis o 1
GIM 1 invasion o 1
GI 1 immortalization o 1
GD 1 growth o 1
Gene Length of CDS Hallmark o/s Weight
GA 1 apoptosis s 1
GB 1 angiogenesis s 1
GIM 1 invasion s 1
GI 1 immortalization s 1
GD 1 growth s 1
Table 12. B) Files for oncogenes (gene_cds2_o_100.txt - left) and supressors (gene_cds2_s_100.txt - right).
Gene Length of CDS Hallmark o/s Weight
GA 100 apoptosis o 1
GB 100 angiogenesis o 1
GIM 100 invasion o 1
GI 100 immortalization o 1
GD 100 growth o 1
Gene Length of CDS Hallmark o/s Weight
GA 100 apoptosis s 1
GB 100 angiogenesis s 1
GIM 100 invasion s 1
GI 100 immortalization s 1
GD 100 growth s 1
Table 12. C) Files for oncogenes (gene_cds2_o_1000_1.txt - left) and supressors (gene_cds2_s_1000_1.txt - right).
Gene Length of CDS Hallmark o/s Weight
GA 1000 apoptosis o 1
GB 1 angiogenesis o 1
GIM 1 invasion o 1
GI 1 immortalization o 1
GD 1 growth o 1
Gene Length of CDS Hallmark o/s Weight
GA 1 apoptosis s 1
GB 1000 angiogenesis s 1
GIM 1 invasion s 1
GI 1 immortalization s 1
GD 1 growth s 1
Table 13. Input file cloneinit.txt with initial clones, which have mutated genes
ID Mutated genes Number of cells
1 GA 1
2 GI 1
3 GD 1
4 GB 1
5 GIM 1
6 1
7 GD,GA 1
8 GD,GA,GI 1
9 GD,GA,GI,GB 1
10 GD,GA,GI,GB,GIM 1
11 GD,GA,GB 1
12 GD,GA,GB,GIM 1
13 GD,GA,GIM 1
14 GD,GI 1
15 GD,GI,GB 1
16 GD,GI,GB,GIM 1
17 GD,GB 1
18 GD,GB,GIM 1
19 GD,GIM 1
20 GD,GA,GI,GIM 1
21 GD,GI,GIM 1
22 GD,GA 1
23 GD,GI 1
24 GD,GB 1
25 GD,GIM 1

Table 14. Results of test’s simulations from the file Results.txt
Genefile \(u_s\) \(u_o\) \(m_0\) Results Conclusion
gene_cds2_o.txt 0.0 0.0 0.000 The cell divisions with the HD Hallmarks without mutations. Please, check the mutation rate For oncogenes without mutation - correct
gene_cds2_s.txt 0.0 0.0 0.000 Same as previous For suppressors same - correct
gene_cds2_o_100.txt 0.0 0.0 1.000 The mutation occurs only in the passenger part of genes Correct
gene_cds2_s_100.txt 0.0 0.0 1.000 The mutation occurs only in the passenger part of genes Correct
gene_cds2_o_100.txt 0.0 1.0 1.000 The mutation occurs only in the driver part of genes Correct
gene_cds2_s_100.txt 0.0 1.0 1.000 The mutation occurs only in the passenger part of genes, because of \(u_s=0\) Correct
gene_cds2_o_100.txt 1.0 0.0 1.000 The mutation occurs only in the passenger part of genes, because of \(u_o=0\) Correct
gene_cds2_s_100.txt 1.0 0.0 1.000 The mutation occurs only in the driver part of genes Correct
gene_cds2_o_100.txt 1.0 1.0 1.000 The mutation occurs only in the driver part of genes Correct
gene_cds2_s_100.txt 1.0 1.0 1.000 The mutation occurs only in the driver part of genes Correct
gene_cds2_o_100.txt 0.5 0.5 1.000 The mutation occurs in the driver and passenger parts of genes Correct
gene_cds2_s_100.txt 0.5 0.5 1.000 The mutation occurs in the driver and passenger parts of genes Correct
gene_cds2_o_1000_1.txt 0.5 0.5 0.001 The mutation occurs only in the driver and passenger parts of gene with a longest CDS Correct
gene_cds2_s_1000_1.txt 0.5 0.5 0.001 The mutation occurs only in the driver and passenger parts of gene with a longest CDS Correct